CAN is defined in the International Standards Organization (ISO) 11898 specification. ISO 11898 is a family of specifications in which ISO11898-1 covers a datalink layer while ISO 118980-2 and ISO 118980-3 cover physical layers of CAN. CAN is a robust communication protocol. A CAN node on a bus may detect errors in a received message, and force the message to be destroyed and retransmitted. Accordingly, the message that a node does receive contains valid data. A CAN frame requires that every node acknowledge the message before it can be processed by that node. This acknowledge can only come after various error condition checks, such as a 15-bit cyclical redundancy check (CRC) on the message. If one CAN node finds an error with the message, the message is destroyed and retransmitted.
The CAN specification defines three different error states for a CAN node to be in, with each error state giving the CAN node different levels of bus access. The error states limit faulty nodes from taking down the CAN bus.
CAN includes serial communication in which all nodes on the CAN bus are attached to common connection using the same bitrate. CAN is message-based, rather than address-based. Thus, messages are not transmitted from one node to another node based on the address of a CAN node. Instead, a CAN node will broadcast its message to all nodes on the bus. The receiving node is required to determine whether it should act on that message. Single or multiple nodes may act on the same data. Accordingly, it is possible to add new nodes to a CAN bus without having to update the existing nodes with addressing information
CAN allows for distributed control across a network because of the reliability of the data. This allows designers the of the network the flexibility to set up consumer-producer or peer-to-peer networks.
CAN network transmission may be performed using a differential pair of transmission lines—CANH and CANL. CAN may specify two logical states: recessive and dominant. During the recessive logical state, CANH and CANL may be approximately the same voltage, or within a specified tolerance of voltage from each other. During the dominant logical state, CANH and CANL may be separated by a voltage difference, VDiff. FIG. 1 illustrates an example differential bus using CAN, including CANH, CANL, and VDiff.
In the recessive state (i.e., logic ‘1’ on an input of a CAN transceiver or module) the differential voltage on CANH and CANL is less than the minimum threshold (<0.5V receiver input or <1.5V transmitter output). In the dominant state (i.e., logic ‘0’ on the input of a CAN transceiver or module), VDiff is greater than the minimum threshold. A dominant bit overdrives a recessive bit on the bus to achieve nondestructive bitwise arbitration.